


from rest_framework import serializers
from goods.models import SKUImage,SKU
from fdfs_client.client import Fdfs_client

class SKUSimpleModelSerializer(serializers.ModelSerializer):
    class Meta:
        model = SKU
        fields = [
            'id',
            'name'
        ]


class ImageModelSerializer(serializers.ModelSerializer):
    class Meta:
        model = SKUImage
        fields = [
            'id',
            'sku',
            'image'
        ]


    # def validate(self, attrs):
    #     """
    #     在对image字段进行校验对过程中，把文件上传到fdfs
    #     :param attrs:
    #     :return:
    #     """
    #     # 1、image字段，前端传来到是文件数据，经过前序校验之后
    #     # 封装成了文件对象
    #     f = attrs.get('image')
    #     # 文件数据：f.read()
    #     # 2、使用fdfs客户端完成图片上传
    #     c = Fdfs_client('meiduo_mall/client.conf')
    #     res = c.upload_by_buffer(f.read())
    #     # 3、判断是否上传成功
    #     if res['Status'] != 'Upload successed.':
    #         # 上传失败，就相当于校验失败
    #         raise serializers.ValidationError("图片上传失败！")
    #
    #     # 4、获取文件标示,也是需要存储在mysql中的
    #     f_id = res['Remote file_id']
    #     # 5、修改有效数据中的image字段，值改为文件标示,便于在后续新建图片对象的时候存入mysql
    #     attrs['image'] = f_id
    #
    #     return attrs













